Traditionally, a computing device that is requesting some data over a network typically assumes that the computing device to which it has directed such a request comprises the requested data. If such a computing device does not comprise the requested data, existing solutions are limited to either redirecting the requesting computing device, and thereby causing the requesting computing device to resend its request to the computing device to which it was redirected, or, alternatively, fetching such data from another computing device and then providing it to the requesting computing device. Each case provides inefficiencies. A redirection causes the requesting computing device to have to re-issue the same request, now to a different, destination, computing device, while acquiring the data from another computing device adds an additional set of network communications. Of course, a third option, which does not provide success as far as actually accessing the requested data, can be to simply inform the requesting computing device that the requested data is not available from the computing device that received the request.
In many network environments, such a third option can be commonly utilized, since such network environments can be based on a more rigorously defined set of resources. However, in large-scale, multiparty, distributed networks, such as the ubiquitous Internet and World Wide Web (WWW), widespread usage of such an option could result in a large number of users being unable to access certain data when the location of such data was moved, or the data was otherwise reorganized. Instead, in large-scale, multi-party, distributed networks the former two options can be more desirable. For example, web pages on the WWW can, and often do, redirect a user's web browser to a more appropriate web page. Typically, such redirection can occur when the data of one web page has been moved to a different web page, or other location on the network. In such a case, the original location can simply redirect the user's browser to the new location, thereby causing the browser to issue the same request, again, except now to the new web page, or other resource at the new location. As another example, many websites on the WWW can, and often do, provide for back-end processes that can go and obtain the data requested by the user, irrespective of the actual location of that data, and then return such data to the requesting user. While the requests from the user's computing device are technically not redirected, inefficiency is still introduced by the additional set of network communications performed by such back-end processes to go and obtain the requested data from whatever location in which such data now resides.
As the resources, especially programmatic resources, that can be available over a network increase, the inefficiencies of existing redirection schemes, such as those enumerated above, become more noticeable and generate a greater impact on performance. For example, when a user uses a web browser in a typical web browsing session comprising retrieving mostly static data from network sources, the few redirections that a user may encounter during such a typical web browsing session may not substantially impact the user's experience. Indeed, for a typical user, the ability to ultimately obtain the requested data is of paramount importance, and the additional delay introduced by any redirection mechanisms can be minimal, especially within the scope of the overall browsing experience. However, for computer-executable instructions executing on a computing device that utilize network-based resources as a type of application program interface, such that those computer-executable instructions are continuously requesting data over the network from other networked computing devices as part of the very essence of the execution of those computer-executable instructions, efficiency of data access over the network can become of paramount importance.